// Header file definition for Object managers

#ifndef __OBJECT_MANAGER_H__
#define __OBJECT_MANAGER_H__

#pragma once
#include<vector>
#include "Geometry.h"

//Linear object manager
//We will implement a linear object manager that gives the object indicated by index
class LinearObjManager
{
private:
	// private data
public:
	
	LinearObjManager() { num_obj = 0; }
	
	int num_obj;		//the total number of objects that the manager has
	
	std::vector<Shape*> obj_array;	//the object list

	//functions of manager
	
	//Function: InsertObject
	//Desc: Insert an object into the list
	void InsertObject(Shape* obj);

	//Function: GetObject()
	//Desc: Returns a pointer to the object at index i
	Shape* GetObject(int index);
};


#endif